
#ifndef COMMON_H_
#define COMMON_H_

#include <iostream>

// 定义点结构体
struct Point {
    int x;
    int y;
    Point(int _x = 0, int _y = 0) : x(_x), y(_y) {}

    bool  operator==(const Point& other) const { return x == other.x && y == other.y; }
    Point operator-(const Point& other) const { return Point(x - other.x, y - other.y); }
};

using Path = std::vector<Point>;

// 重载<<运算符，使其能够输出Point对象
inline std::ostream& operator<<(std::ostream& os, const Point& p) {
    os << "(" << p.x << ", " << p.y << ")";
    return os;
}

// 地图栅格点对应的类型
enum GridType {
    kNormal   = 1,  // 普通仓位
    kCross    = 2,  // 交叉口
    kObstacle = 8,  // 障碍物
};

#endif